A system editor is a mechanism employed by computer users to create files and manipulate text in those files for computer applications such as word processing and computer programming. Examples of editing include adding, deleting, or rearranging text in a file. Generally, these editing functions are accomplished by way of a core set of commands which exist for the editor. In many applications, however, a user may desire to extend that core set of commands with new commands to make his particular editing task easier.
When one type of system editor is in use, a prompt line allows the user to either enter text into the designated file or to enter a command to be executed. Typically, it is the first character entered on the prompt line which distinguishes text from a command, for example, a command will begin with a command character such as "]".
One way of extending a system editor is by macros. Macros are commands which are expressed in terms of existing editor commands (e.g., core commands, or other macros). When invoked by a user, macros are interpreted by the editor. Macros are very useful when a user needs to instruct the editor to perform a common sequence of commands frequently.
Macros, however, have several disadvantages. First, they are limited by the set of core commands of the system editor. Second, macros tend to execute slowly.
Another way to extend the capability of a system editor is for an individual user to revise the actual system editor program to add more core commands, thus, creating his own version of the system editor. This, however, requires a non-trivial understanding of how the system editor functions and how all the code is interrelated. That is, creating individually tailored editors tends to increase the complexity of the system editor program.